home *** CD-ROM | disk | FTP | other *** search
-
-
-
- iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333)))) IIIImmmmpppprrrreeeessssssssaaaarrrriiiioooo iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- impRGBtoW, impWtoRGB, impRGBtoK, impKtoRGB, impRGBtoCMY, impCMYtoRGB,
- impRGBtoYIQ, impYIQtoRGB, impRGBtoYUV, impYUVtoRGB, impRGBtoYCbCr,
- impYCbCrtoRGB, impRGBtoCMYK, impRGBtoDevCMYK, impCMYKtoRGB, impRGBtoHSV,
- impHSVtoRGB, impRGBtoHLS, impHLStoRGB - color space conversion
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<iiiimmmmpppp....hhhh>>>>
-
- W Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****wwwwbbbbuuuuffff,,,, iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppWWWWttttooooRRRRGGGGBBBB((((sssshhhhoooorrrrtttt ****wwwwbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,, iiiinnnntttt nnnn))));;;;
-
- K Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooKKKK((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****kkkkbbbbuuuuffff,,,, sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppKKKKttttooooRRRRGGGGBBBB((((sssshhhhoooorrrrtttt ****kkkkbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,, sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
- CMY Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooCCCCMMMMYYYY((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****ccccbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****mmmmbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppCCCCMMMMYYYYttttooooRRRRGGGGBBBB((((sssshhhhoooorrrrtttt ****ccccbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****mmmmbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
- YIQ Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooYYYYIIIIQQQQ((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****iiiibbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****qqqqbbbbuuuuffff,,,,
- iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppYYYYIIIIQQQQttttooooRRRRGGGGBBBB((((sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****iiiibbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****qqqqbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- iiiinnnntttt nnnn))));;;;
-
- YUV Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooYYYYUUUUVVVV((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****uuuubbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****vvvvbbbbuuuuffff,,,,
- iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppYYYYUUUUVVVVttttooooRRRRGGGGBBBB((((sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****uuuubbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****vvvvbbbbuuuuffff,,,,
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333)))) IIIImmmmpppprrrreeeessssssssaaaarrrriiiioooo iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333))))
-
-
-
- sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- iiiinnnntttt nnnn))));;;;
-
- YCbCr Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooYYYYCCCCbbbbCCCCrrrr((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ccccbbbbbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ccccrrrrbbbbuuuuffff,,,,
- iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppYYYYCCCCbbbbCCCCrrrrttttooooRRRRGGGGBBBB((((sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ccccbbbbbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ccccrrrrbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- iiiinnnntttt nnnn))));;;;
-
- CMYK Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooCCCCMMMMYYYYKKKK((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****ccccbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****mmmmbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****yyyybbbbuuuugggg,,,,
- sssshhhhoooorrrrtttt ****kkkkbbbbuuuuffff,,,, sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooDDDDeeeevvvvCCCCMMMMYYYYKKKK((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****ccccbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****mmmmbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****yyyybbbbuuuugggg,,,,
- sssshhhhoooorrrrtttt ****kkkkbbbbuuuuffff,,,, IIIIMMMMPPPPUUUUCCCCRRRRFFFFuuuunnnncccc uuuuccccrrrr,,,, IIIIMMMMPPPPBBBBGGGGFFFFuuuunnnncccc bbbbgggg,,,,
- sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
- sssshhhhoooorrrrtttt ((((****IIIIMMMMPPPPBBBBGGGGFFFFuuuunnnncccc))))((((sssshhhhoooorrrrtttt kkkk))));;;;
- sssshhhhoooorrrrtttt ((((****IIIIMMMMPPPPUUUUCCCCRRRRFFFFuuuunnnncccc))))((((sssshhhhoooorrrrtttt kkkk))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppCCCCMMMMYYYYKKKKttttooooRRRRGGGGBBBB((((sssshhhhoooorrrrtttt ****ccccbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****mmmmbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****yyyybbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****kkkkbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuugggg,,,,
- sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,, sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
- HSV Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooHHHHSSSSVVVV((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- ffffllllooooaaaatttt ****hhhhbbbbuuuuffff,,,, ffffllllooooaaaatttt ****ssssbbbbuuuuffff,,,, ffffllllooooaaaatttt ****vvvvbbbbuuuuffff,,,,
- iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppHHHHSSSSVVVVttttooooRRRRGGGGBBBB((((ffffllllooooaaaatttt ****hhhhbbbbuuuuffff,,,, ffffllllooooaaaatttt ****ssssbbbbuuuuffff,,,, ffffllllooooaaaatttt ****vvvvbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- iiiinnnntttt nnnn))));;;;
-
- HLS Conversions:
-
- vvvvooooiiiidddd iiiimmmmppppRRRRGGGGBBBBttttooooHHHHLLLLSSSS((((sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- ffffllllooooaaaatttt ****hhhhbbbbuuuuffff,,,, ffffllllooooaaaatttt ****llllbbbbuuuuffff,,,, ffffllllooooaaaatttt ****ssssbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
- vvvvooooiiiidddd iiiimmmmppppHHHHLLLLSSSSttttooooRRRRGGGGBBBB((((ffffllllooooaaaatttt ****hhhhbbbbuuuuffff,,,, ffffllllooooaaaatttt ****llllbbbbuuuuffff,,,, ffffllllooooaaaatttt ****ssssbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt ****rrrrbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****ggggbbbbuuuuffff,,,, sssshhhhoooorrrrtttt ****bbbbbbbbuuuuffff,,,,
- sssshhhhoooorrrrtttt uuuunnnniiiittttyyyy,,,, iiiinnnntttt nnnn))));;;;
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333)))) IIIImmmmpppprrrreeeessssssssaaaarrrriiiioooo iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333))))
-
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The functions described here perform color space conversion between a
- given color space and RGB. The actual transformations performed are
- described below. Certain functions specify the parameter _u_n_i_t_y. _u_n_i_t_y
- should be set to the value of maximum possible intensity for the arrays
- specified. For example, if eight bit data is being converted, _u_n_i_t_y would
- be specified as 255. If the data makes use of the full sixteen bits
- available in each array element, _u_n_i_t_y would be specified as 65535. Note
- that the parameter _n specifies the number of elements in the arrays and
- not the number of bytes.
-
- W Conversions:
-
- R
- W = | 0.299 0.587 0.114 | * G
- B
- |||
-
- |||
-
-
-
- R W
- G = W
- B W
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- K Conversions:
-
- 1.0 - R
- K = | 0.299 0.587 0.114 | * 1.0 - G
- 1.0 - B
- |||
-
- |||
-
-
-
- R 1.0 - K
- G = 1.0 - K
- B 1.0 - K
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- CMY Conversions:
-
- C 1.0 - R
- M = 1.0 - G
- Y 1.0 - B
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- R 1.0 - C
- G = 1.0 - M
- B 1.0 - Y
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- YIQ Conversions:
-
- Y 0.299 0.587 0.114 R
- I = 0.596 -0.274 -0.322 * G
- Q 0.212 -0.523 0.311 B
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- R 1.000 0.955 0.622 Y
- G = 1.000 -0.271 -0.648 * I
- B 1.000 -1.107 1.702 Q
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333)))) IIIImmmmpppprrrreeeessssssssaaaarrrriiiioooo iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333))))
-
-
-
- |
- |
- |
- |
- |
- |
-
- YUV Conversions:
-
- Y 0.299 0.587 0.114 R
- U = -0.147 -0.289 0.436 * G
- V 0.615 -0.515 -0.100 B
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- R 1.000 0.000 1.140 Y
- G = 1.000 -0.395 -0.581 * U
- B 1.000 2.032 0.000 V
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- YCbCr Conversions:
-
- Y 0.299 0.587 0.114 R
- Cb = -0.169 -0.331 0.500 * G
- Cr 0.500 -0.419 -0.081 B
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- R 1.000 -0.001 1.402 Y
- G = 1.000 -0.344 -0.714 * Cb
- B 1.000 1.772 0.001 Cr
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
- |||
-
-
-
- CMYK Conversions:
-
- Ci = 1.0 - R
- Mi = 1.0 - G
- Yi = 1.0 - B
- K = Min(Ci, Mi, Yi)
- C = Ci - K
- M = Mi - K
- Y = Yi - K
-
- Ci = 1.0 - R
- Mi = 1.0 - G
- Yi = 1.0 - B
- Ki = Min(Ci, Mi, Yi)
- Kucr = UCR(Ki)
- Device C = Min(1.0, Max(0.0, Ci - Kucr))
- Device M = Min(1.0, Max(0.0, Mi - Kucr))
- Device Y = Min(1.0, Max(0.0, Yi - Kucr))
- Device K = BG(Ki)
-
- Ci = C + K
- Mi = M + K
- Yi = Y + K
- R = 1.0 - Min(1.0, Ci)
- G = 1.0 - Min(1.0, Mi)
- B = 1.0 - Min(1.0, Yi)
-
- For HSV conversions refer to _C_o_m_p_u_t_e_r _G_r_a_p_h_i_c_s, _P_r_i_n_c_i_p_a_l_s _a_n_d _P_r_a_c_t_i_c_e,
- _F_o_l_e_y _a_n_d _V_a_n _D_a_m, _2_n_d. _E_d_i_t_i_o_n, pp. 590-592.
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333)))) IIIImmmmpppprrrreeeessssssssaaaarrrriiiioooo iiiimmmmppppRRRRGGGGBBBBttttooooWWWW((((3333))))
-
-
-
- For HLS conversions refer to the citing above pp. 592-595.
-
- NNNNOOOOTTTTEEEE
- It is the caller's responsibility to allocate all buffer storage.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- libimp(3)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-